/*=====================================================================================================================
                    Copyright(c) 2009 Geometric PLM Software Corp. All rights reserved.
                             Unpublished - All rights reserved
=======================================================================================================================
File description:
    Filename: tc_ico.h
    Module  : (geometric) itk module.

        This file manages the operations of the ico.

=======================================================================================================================
Date               Name              Description of Change
14-Jul-2009        Penn,Xie          Initialize creation
$HISTORY$
=====================================================================================================================*/
#ifndef GITK_TC_ICO_H

#define GITK_TC_ICO_H

#ifdef __cplusplus
    extern "C"
    {
#endif


    /**
    * Whether does one attribute of the ico exist.
    * @param icoTag   - <I> the tag of ico
    * @param attrName - <I> the attribute name of the ico tag
    * @return - true/false
    */
    extern logical GICO_is_attr_exist( tag_t icoTag, const char *attrName );

    /**
    * Get the attribute value of the appointed ico.
    * @param icoTag    - <I> the tag of ico
    * @param attrName  - <I> the attribute name of the ico tag
    * @param attrValue - <OF> the attribute value
    * @return - ITK_ok or error code
    */
    extern int GICO_get_attr_value( tag_t icoTag, const char *attrName, char **attrValue );


    /**
    * Ask lov values of a property
    * @param classID    - <I> the ID of the class
    * @param attrName   - <I> the attribute name of the class tag
    * @param isLov      - <O> is the attribute a lov or not
    * @param lovNumber  - <O> the number of the lov values
    * @param lovKeys    - <OF> the keys of lov
    * @param lovValues  - <OF> the values of lov
    * @return - ITK_ok or error code
    */
    extern int GICO_get_attr_lov_values(const char* classID, const char *attrName, logical *isLov, int *lovNumber, char ***lovKeys, char ***lovValues);

#ifdef __cplusplus
    }
#endif


#endif //GITK_TC_ICO_H
